package com.wxh.cloud.gateway.fillter;

import com.netflix.zuul.ZuulFilter;
import org.springframework.stereotype.Component;

/**
 * zuul 过滤器
 *
 * @author wxh
 */
@Component
public class MyPreZuulFillter extends ZuulFilter {

    /**
     * 过滤器类型包含:pre post route error
     * pre:代表在路由代理前执行
     * route:代表代理的时候执行
     * error:代表出现错误的时候执行
     * post:代表在route或者error执行完成之后执行
     *
     * @return
     */
    @Override
    public String filterType() {
        return "pre";
    }

    /**
     * fillter 是一个链式调用，一个filter会调用下面一个filter
     * zuul根据order决定执行顺序，越小先执行
     *
     * @return
     */
    @Override
    public int filterOrder() {
        return 1;
    }

    /**
     * 是否使用该过滤器
     *
     * @return
     */
    @Override
    public boolean shouldFilter() {
        return true;
    }

    /**
     * 过滤器执行程序
     *
     * @return
     */
    @Override
    public Object run() {
        System.out.println("执行了前置过滤器");
        return null;
    }
}
